﻿#pragma once
#include "CMyEdit.h"


// InsertSection 对话框

class InsertSection : public CDialogEx
{
	DECLARE_DYNAMIC(InsertSection)

public:
	InsertSection(CWnd* pParent = nullptr);   // 标准构造函数
	virtual ~InsertSection();

// 对话框数据
#ifdef AFX_DESIGN_TIME
	enum { IDD = IDD_DIALOG4 };
#endif

protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

	DECLARE_MESSAGE_MAP()

private:
	DWORD m_SectionType;              //节类型，增加节还是扩充节
	TCHAR* m_pFileFullPath;           //文件路径
	char** m_pFileData = NULL;       //数据
	DWORD m_Offset;                   //写入文件的偏移

    //根据偏移值和对齐值计算对齐后的大小
    DWORD CalcOffset(DWORD dwVal, DWORD dwAlign);

	//扩充节
	void IncSection(DWORD dwValue);

	//增加节
	void AddSection(DWORD dwValue);

	//写文件
	void MyWriteFile(IMAGE_SECTION_HEADER SecHead);

public:
	void SetSectionType(DWORD SecType);
	void SetFilePath(TCHAR* pFilePath);
	void SetFileData(char** pFileData);
	void SetOffset(DWORD dwOffset);

	afx_msg void OnBnClickedOk();
	CMyEdit m_EditSecSize;
	virtual BOOL OnInitDialog();
};
